package br.com.gwsistemas.buonny.servico;

import br.com.gwsistemas.buonny.entidade.IElemento;
import br.com.gwsistemas.buonny.util.Util;
import br.com.gwsistemas.buonny.util.exception.ExceptionErroValidacao;
import br.com.gwsistemas.buonny.util.exception.ExceptionTipoObjeto;
import br.com.gwsistemas.buonny.util.objetos.TipoMensagem;
import br.com.gwsistemas.buonny.validacao.ErroValidacao;
import java.io.IOException;
import java.util.HashMap;

public abstract class MensagemService {
	private HashMap<String, String> caracteresTrataveis = null;
	
	
	private final IElemento elemento;
	
	public HashMap<String, String> getCaracteresTraveis() {

		return caracteresTrataveis;
	}

	public MensagemService(TipoMensagem tipoMensagem, IElemento elemento, HashMap<String, String> caracteresTrataveis) throws IOException, ExceptionTipoObjeto{
		this.caracteresTrataveis = caracteresTrataveis;
		this.elemento = elemento; 
		Util.validarTipo(elemento, tipoMensagem);
	}
	
	/**
	 * @return the caracteresTrataveis
	 */
	public HashMap<String, String> getCaracteresTrataveis() {
		return caracteresTrataveis;
	}

	
	
	
	/**
	 * @return the elemento
	 */
	public IElemento getElemento() {
		return elemento;
	}

	public abstract IElemento processar() throws ErroValidacao, ExceptionErroValidacao;
}
